package cn.stazxr.service;

import cn.stazxr.entity.YdlLoginUser;
import cn.stazxr.entity.YdlUser;
import cn.stazxr.exception.BusinessException;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;
import java.util.Map;

/**
 * 用户信息表(YdlUser)表服务接口
 *
 * @author makejava
 * @since 2025-10-28 22:51:59
 */
public interface YdlUserService {

	/**
	 * 通过ID查询单条数据
	 *
	 * @param userId 主键
	 * @return 实例对象
	 */
	YdlUser queryById(Long userId);

	/**
	 * 分页查询
	 *
	 * @param ydlUser     筛选条件
	 * @param pageRequest 分页对象
	 * @return 查询结果
	 */
	Page<YdlUser> queryByPage(YdlUser ydlUser, PageRequest pageRequest);

	/**
	 * 新增数据
	 *
	 * @param ydlUser 实例对象
	 * @return 实例对象
	 */
	YdlUser insert(YdlUser ydlUser);

	/**
	 * 修改数据
	 *
	 * @param ydlUser 实例对象
	 * @return 实例对象
	 */
	YdlUser update(YdlUser ydlUser);

	/**
	 * 通过主键删除数据
	 *
	 * @param userId 主键
	 * @return 是否成功
	 */
	boolean deleteById(Long userId);

	/**
	 * 用户登录
	 *
	 * @param userName 用户名
	 * @param password 密码
	 * @return 登录用户信息
	 */
	YdlLoginUser login(String userName, String password) throws JsonProcessingException;

	void logout() throws BusinessException;

	/**
	 * 获取用户信息
	 */
	Map<String, List<String>> getInfo();
}
